package com.min.main.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.min.common.entity.BaseEntity;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 权限表
 * 
 * @author fengt
 * @date 2021-06-23 11:41:08
 */
@Data
@TableName("min_menu")
public class MenuEntity extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/**
	* 父ID
	*/
	@JsonSerialize(using = ToStringSerializer.class)
	private Long parentId;
	/**
	* 资源名称
	*/
	private String name;
	/**
	 * 页面显示标题
	 **/
	private String title;
	/**
	* 权限编码
	*/
	private String auth;
	/**
	* 资源类型，1菜单，2按钮
	*/
	private Integer type;
	/**
	* 图标
	*/
	private String icon;
	/**
	* 排序
	*/
	private Integer sorter;

	/**
	 * vue的组件路径（view文件夹下的相对路径）
	 **/
	private String uri;

	/**
	 * 重定向到需要的uri
	 **/
	private String redirect;

	/**
	 * 是否菜单隐藏
	 **/
	private Boolean hide;

	/**
	 * 是否页面缓存
	 **/
	private Boolean alive;

	/**
	 * 是否以链接形式访问
	 **/
	private Boolean link;

	/**
	 * 是否用iframe显示
	 **/
	private Boolean iframe;

	/**
	 * 是否固定在tagsview
	 **/
	private Boolean affix;

	@TableField(exist = false)
	private List<MenuEntity> children = new ArrayList<>();
}
